package br.ufba.controler.apresentacao.jsf.mb;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;

import org.primefaces.event.RowEditEvent;
import org.primefaces.event.ToggleEvent;

import br.ufba.controler.apresentacao.jsf.util.JSFUtil;
import br.ufba.model.percistencia.entity.TipoDeUsuario;
import br.ufba.model.rn.UsuarioRN;
import br.ufba.model.rn.exception.NegocioException;


@ManagedBean
public class UsuarioMB {
//
//	private UsuarioVO usuarioVO;
//	private List<UsuarioVO> usuariosVOs;
//	private UsuarioRN usuarioRN;
//	
//	
//	@PostConstruct
//	public void init() {
//		// TODO Auto-generated method stub
//		usuarioVO = new UsuarioVO();
//		usuarioVO.setTipoDeUsuarioVO(new TipoDeUsuario());
//		usuarioRN = new UsuarioRN();
//		usuariosVOs = null;
//	}
//	
//	public void adiciona() {
//		
//		
//		usuarioRN.inserirUsuario(usuarioVO);
//		
//		//-- componente grow
//		JSFUtil.addInfoMessage(this.usuarioVO.getNome()+" adicionado com sucesso! ");
//		
//		this.usuarioVO = new UsuarioVO();
//		this.usuariosVOs = new ArrayList<UsuarioVO>();
//	}
//	
//	public List<UsuarioVO> getUsuario() {
//		return this.usuariosVOs;
//	}
//	
//	
//	public void buscar(UsuarioVO usuario) {
////		UsuarioDAO repository = new UsuarioDAO(entityManager);
////		repository.remove(usuario);
////		
////		//-------------------
////		FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "System Error",  "Please try again later.");
////		FacesContext.getCurrentInstance().addMessage(null, message);
////		//----------------
//		this.usuariosVOs = null;
//	}
//	
//	public void excluir(UsuarioVO usuario) {
////		UsuarioDAO repository = new UsuarioDAO(entityManager);
////		repository.remove(usuario);
////		
////		//-------------------
////		FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "System Error",  "Please try again later.");
////		FacesContext.getCurrentInstance().addMessage(null, message);
////		//----------------
//		this.usuariosVOs = null;
//	}
//	
//	
//    public void onEdit(RowEditEvent event) {
//        FacesMessage msg = new FacesMessage("Usuario Editado");
//
//        FacesContext.getCurrentInstance().addMessage(null, msg);
//    }
//    
//    public void onCancel(RowEditEvent event) {
//        FacesMessage msg = new FacesMessage("Usuario cancelado");
//
//        FacesContext.getCurrentInstance().addMessage(null, msg); 
//    }
//    
//    
//    
//    public void onRowToggle(ToggleEvent event) {
//        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO,
//                                            "Row State " + event.getVisibility(),"" );
//        
//        
//        FacesContext.getCurrentInstance().addMessage(null, msg);
//    }
//    
//    
//    public void carregarUsuariosVOs() {
//
//    	init();// jsf chama o metodo get e copnsequentimento esse.
//        try {
//        	//this.usuariosVOs = new ArrayList<UsuarioVO>(); 
//        	this.usuarioRN = new UsuarioRN();
//            this.usuariosVOs = usuarioRN.findUsuario();
//        } catch (NegocioException e) {
//            JSFUtil.addErrorMessage(e.getMessage());
//
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//
//        } catch (Exception e) {
//            //JSFUtil.addErrorMessage(JSFUtil.getMessage("erro"));
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//
//        }
//
//    }
//    
//
//	public UsuarioVO getUsuarioVO() {
//		return usuarioVO;
//	}
//
//	public void setUsuarioVO(UsuarioVO usuario) {
//		this.usuarioVO = usuario;
//	}
//
//	public List<UsuarioVO> getUsuariosVOs() {
//		
//		carregarUsuariosVOs();
//		return usuariosVOs;
//	}
//
//	public void setUsuariosVOs(List<UsuarioVO> usuarios) {
//		this.usuariosVOs = usuarios;
//	}
//
//	public UsuarioRN getUsuarioRN() {
//		return usuarioRN;
//	}
//
//	public void setUsuarioRN(UsuarioRN usuarioRN) {
//		this.usuarioRN = usuarioRN;
//	}
//	
//	
	
}
